package telas;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;

import com.sample.DiaHomem;
import com.sample.Embalagem;
import com.sample.Energia;
import com.sample.Herbicida;
import com.sample.HoraMaquina;
import com.sample.Inseticida;
import com.sample.K2O;
import com.sample.Nitrogenio;
import com.sample.P2O5;
import com.sample.Plantacao;
import com.sample.SementeFeijao;

public class TelaInicial extends JFrame implements ActionListener {
	public JLabel descricao;
	public JLabel labelTerreno;
	public JLabel p2o5, k2o, nitorgenio, inseticida, herbicida, sementefeijao,
			energia, horaMaquina, diaHomem, Embalagem;
	public JTextField fieldTerreno;
	public JTextField fP2o5, fK2o, fNitorgenio, fInseticida, fHerbicida,
			fSemente, fEnergia, fHm, fDh, fEmbalagem;
	public JCheckBox checkMaquinario;
	public JCheckBox checkIrrigacao;
	public JPanel panelInformacoes;
	public JPanel panelDadosAdicionais;
	public JButton btSimular, btLimpar, btSair;

	private Plantacao plantacao;

	public Plantacao getPlantacao() {
		return plantacao;
	}

	public void setPlantacao(Plantacao plantacao) {
		this.plantacao = plantacao;
	}

	public TelaInicial(String user, Plantacao plantacao) {
		super(user);
		
		setSize(700, 600);
		setLayout(null);
		setResizable(false);
		setLocationRelativeTo(null);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.plantacao = plantacao;
		descricao = new JLabel(
				"Sistema para Simulação de Plantio de Feijão Caupi. Insira os dados Abaixo: ");
		descricao.setBounds(80, 20, 600, 30);

		labelTerreno = new JLabel("Area do terreno (em hectares): ");
		labelTerreno.setBounds(10, 20, 230, 25);

		fieldTerreno = new JTextField();
		fieldTerreno.setBounds(250, 20, 50, 25);

		checkIrrigacao = new JCheckBox("Pretendo usar Irrigação");
		checkIrrigacao.setBounds(10, 55, 200, 25);

		checkMaquinario = new JCheckBox("Pretendo usar Maquinário");
		checkMaquinario.setBounds(10, 90, 230, 25);

		panelInformacoes = new JPanel();
		panelInformacoes.setBounds(170, 70, 350, 150);
		panelInformacoes.setLayout(null);
		panelInformacoes.setBorder(BorderFactory
				.createTitledBorder("Dados da Plantação"));

		panelInformacoes.add(labelTerreno);
		panelInformacoes.add(fieldTerreno);
		panelInformacoes.add(checkIrrigacao);
		panelInformacoes.add(checkMaquinario);

		inseticida = new JLabel("Inseticida");
		inseticida.setBounds(10, 10, 100, 25);
		herbicida = new JLabel("Herbicida");
		herbicida.setBounds(10, 45, 100, 25);
		sementefeijao = new JLabel("Semente Feijão");
		sementefeijao.setBounds(10, 80, 130, 25);
		Embalagem = new JLabel("Embalagem");
		Embalagem.setBounds(10, 115, 100, 25);
		p2o5 = new JLabel("p2o5");
		p2o5.setBounds(10, 145, 80, 25);
		k2o = new JLabel("k2o");
		k2o.setBounds(300, 10, 80, 25);
		nitorgenio = new JLabel("Nitrogênio");
		nitorgenio.setBounds(300, 45, 100, 25);
		energia = new JLabel("Energia");
		energia.setBounds(300, 80, 100, 25);
		horaMaquina = new JLabel("Hora Máquina");
		horaMaquina.setBounds(300, 115, 120, 25);
		diaHomem = new JLabel("Dia Homem");
		diaHomem.setBounds(300, 145, 100, 25);

		fInseticida = new JTextField();
		fInseticida.setBounds(150, 10, 50, 25);

		fHerbicida = new JTextField();
		fHerbicida.setBounds(150, 45, 50, 25);

		fSemente = new JTextField();
		fSemente.setBounds(150, 80, 50, 25);

		fEmbalagem = new JTextField();
		fEmbalagem.setBounds(150, 115, 50, 25);

		fP2o5 = new JTextField();
		fP2o5.setBounds(150, 145, 50, 25);
		fP2o5.setEditable(false);

		fK2o = new JTextField();
		fK2o.setBounds(430, 10, 50, 25);
		fK2o.setEditable(false);

		fNitorgenio = new JTextField();
		fNitorgenio.setBounds(430, 45, 50, 25);
		fNitorgenio.setEditable(false);

		fEnergia = new JTextField();
		fEnergia.setBounds(430, 80, 50, 25);
		fEnergia.setEditable(false);

		fHm = new JTextField();
		fHm.setBounds(430, 115, 50, 25);
		fHm.setEditable(false);

		fDh = new JTextField();
		fDh.setBounds(430, 145, 50, 25);
		fDh.setEditable(false);
		
		checkIrrigacao.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				if (checkIrrigacao.isSelected()) {
					fEnergia.setEditable(true);
				} else
					fEnergia.setEditable(false);

			}
		});
		checkMaquinario.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				if (checkMaquinario.isSelected()) {
					fHm.setEditable(true);
					fDh.setEditable(true);
					fP2o5.setEditable(true);
					fK2o.setEditable(true);
					fNitorgenio.setEditable(true);
					fHm.setEditable(true);
					fDh.setEditable(true);
				} else {
					fHm.setEditable(false);
					fDh.setEditable(false);
					fP2o5.setEditable(false);
					fK2o.setEditable(false);
					fNitorgenio.setEditable(false);
					fHm.setEditable(false);
					fDh.setEditable(false);
				}

			}
		});

		panelDadosAdicionais = new JPanel();
		panelDadosAdicionais.setBounds(50, 240, 600, 200);
		panelDadosAdicionais.setLayout(null);
		panelDadosAdicionais.setBorder(BorderFactory.createTitledBorder(null,
				"Dados Adicionais: forneça os preços abaixo",
				TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION));
		panelDadosAdicionais.add(inseticida);
		panelDadosAdicionais.add(herbicida);
		panelDadosAdicionais.add(sementefeijao);
		panelDadosAdicionais.add(Embalagem);
		panelDadosAdicionais.add(p2o5);
		panelDadosAdicionais.add(k2o);
		panelDadosAdicionais.add(nitorgenio);
		panelDadosAdicionais.add(energia);
		panelDadosAdicionais.add(horaMaquina);
		panelDadosAdicionais.add(diaHomem);
		panelDadosAdicionais.add(fDh);
		panelDadosAdicionais.add(fEmbalagem);
		panelDadosAdicionais.add(fEnergia);
		panelDadosAdicionais.add(fHerbicida);
		panelDadosAdicionais.add(fHm);
		panelDadosAdicionais.add(fInseticida);
		panelDadosAdicionais.add(fK2o);
		panelDadosAdicionais.add(fNitorgenio);
		panelDadosAdicionais.add(fP2o5);
		panelDadosAdicionais.add(fSemente);

		btSimular = new JButton("Simular");
		btSimular.setBounds(170, 480, 100, 30);
		
		btLimpar = new JButton("Limpar");
		btLimpar.setBounds(290, 480, 100, 30);

		btSair = new JButton("Sair");
		btSair.setBounds(410, 480, 100, 30);
		btSair.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				System.exit(0);

			}
		});

		add(descricao);
		add(panelInformacoes);
		add(panelDadosAdicionais);
		add(btLimpar);
		add(btSair);
		add(btSimular);
		btSimular.addActionListener(this);
		setVisible(true);

	

}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == btSimular) {
			plantacao.setHectare(Double.parseDouble(fieldTerreno.getText()));
			plantacao.setIrrigacao(checkIrrigacao.isSelected());
			plantacao.setMaquinario(checkMaquinario.isSelected());
			plantacao.setInseticida(new Inseticida(Double
					.parseDouble(fInseticida.getText())));
			plantacao.setHerbicida(new Herbicida(Double.parseDouble(fHerbicida
					.getText())));
			plantacao.setSemente(new SementeFeijao(Double
					.parseDouble(fSemente.getText())));
			plantacao.setEmbalagem(new Embalagem(Double.parseDouble(fEmbalagem
					.getText())));
			plantacao.setP2o5(new P2O5(Double.parseDouble(fP2o5.getText())));
			plantacao.setK2o(new K2O(Double.parseDouble(fK2o.getText())));
			plantacao.setNitro(new Nitrogenio(Double.parseDouble(fNitorgenio
					.getText())));
			plantacao.setEnergia(new Energia(Double.parseDouble(fEnergia
					.getText())));
			plantacao.setHm(new HoraMaquina(Double.parseDouble(fHm.getText())));
			plantacao.setDm(new DiaHomem(Double.parseDouble(fDh.getText())));
			plantacao.setAtivar(true);
			new Resposta(plantacao);
		}

	}

}

